Mesh profiling

ABSTRACT

An analysis device for analysing a communication network comprising a plurality of communication devices, the communication network being configured such that transport of packets through the network is provided by the communication devices in the network listening for and relaying packets, the analysis device being configured to: receive a traffic statistics log from a profile device, the traffic statistics log comprising a traffic statistics message from each of the plurality of communication devices, each traffic statistics message comprising data defining at least one reception property of the reception of at least one probe message at the respective communication device; and identify, based on the at least one reception property, at least one restriction point communication device from the plurality of communication devices that is a restriction point in the network.

CROSS REFERENCE TO RELATED APPLICATIONS

This non-provisional patent application claims priority to Great Britain applications: GB 1412714.6, filed Jul. 17, 2014; GB 1405790.5, filed Mar. 31, 2014; GB 1403314.6, filed Feb. 25, 2014; GB 1405785.5, filed Mar. 31, 2014; GB 1405786.3, filed Mar. 31, 2014; GB 1405789.7, filed Mar. 31, 2014; GB 1403312.0, filed Feb. 25, 2014; GB 1405791.3, filed Mar. 31, 2014; GB 1405797.0, filed Mar. 31, 2014.

TECHNICAL FIELD

This invention relates to a communication device and method for profiling the performance of a communication network.

BACKGROUND

There is an increasing need for a variety of objects to be equipped with the ability to send and receive messages. In the case of a home, for example, it may be desired that the objects in a room be capable of communicating with each other, and also potentially being able to communicate with the internet or cloud. For example, the room may have a light, light switch, window and door. It may be desired that each of these objects be able to communicate with the others so that the home can be automated. Thus certain actions may be undertaken by one or more of these objects in response to other objects communicating that they are in a particular state. A basic example is adjusting the heating within a room when the light is switched on, to keep the room at a comfortable temperature. Similar situations are envisaged in a commercial environment.

To enable objects to communicate, they may be equipped with a device that can communicate with similar devices attached to other objects. They may also communicate with similar devices that are not associated with or attached to other objects but that can communicate with those devices that are associated with or attached to other objects. For this type of communication to be useful, a large number of these devices may be able to communicate with each other. The result can be a network of devices and so this network can potentially have a large number of objects.

One suitable method of communication for such a network is to use a mesh networking protocol. This permits a first device to send a message to a second device, which may be outside the communication range of the first device, by transmitting the message via one or more intermediate devices. The objects that are attached to, or associated with, those devices may therefore be able to send and receive messages from one object to another via intermediate objects and/or the other devices that are not associated with an object.

Many mesh networks send data using complex routing tables. The routing tables store routes from one network device to another so that messages can be propagated from source to destination via a series of hops. The topology of the network generally has to be known in order that routes between the various devices can be determined and stored. An alternative is flood routing. In this method messages do not travel from one device to another via a predefined route. Instead messages are broadcast and any device in range that receives a message retransmits it. A message thus propagates its way through the network, potentially reaching its destination via number of different routes. Flood routing is very simple to implement and although it may appear inefficient has a number of advantages, particularly for ad hoc networks that may change their topology on a random basis.

The performance of a mesh network that uses flood routing can be dependent on the connections between the devices in the network and the topology of those connections between the network devices. The performance of the mesh network may be dependent on the connectivity between devices, the density of the devices within the network, the topology arrangement of the devices and/or the transmit and receive schedule of each of the devices. The devices may be located in the network in a way which may not be optimal for the performance of the mesh network. For instance, devices positioned in a home may be positioned according to the function of the object that the device is associated with. For instance, a door may be located in an opening to a room and a light may be located on the ceiling in the middle of a room. A position that is based on the function of the object may be sub-optimal from the perspective of the operation of a mesh network. For example, that device may only be able to communicate with a small number of other devices that are at the edge of the transmit and/or receive ranges of those devices. One optimal position for the device, from the perspective of the operation of the mesh network, may be a position that enables the device to communicate with many other devices with good transmit/receive signal strength. Such a position may enable messages sent via flood routing to arrive at that device via multiple routes. This may increase the reliability, and also the performance, of the mesh network. It may therefore be desirable to view and optimize the mesh network as a whole to enable reliable communication between each of the mesh network nodes.

As many of these objects may not have access to, or require power themselves, for example, packages sitting on a shelf, a window or a door, there may be a desire for the devices that communicate on the objects' behalf to be battery-powered devices that consume only a small amount of power. It may also be desirable that these devices be able to communicate wirelessly with each other so that there is no need for cables running between them. This can increase the need to optimise the mesh network.

Due to the distributed nature of a mesh network with multiple separate independent devices, it can be difficult to acquire the data needed to understand how the mesh network may be configured to enable reliable communication. Therefore, there is a need to improve the analysis of mesh networks as a system to be able to optimise communications within the mesh network.

SUMMARY OF THE INVENTION

According to a first aspect of the present invention there is provided an analysis device for analysing a communication network comprising a plurality of communication devices, the communication network being configured such that transport of packets through the network is provided by the communication devices in the network listening for and relaying packets, the analysis device being configured to: receive a traffic statistics log from a profile device, the traffic statistics log comprising a traffic statistics message from each of the plurality of communication devices, each traffic statistics message comprising data defining at least one reception property of the reception of at least one probe message at the respective communication device; and identify, based on the at least one reception property, at least one restriction point communication device from the plurality of communication devices that is a restriction point in the network.

The analysis device may be configured to: calculate a network reception property for each different reception property received from the plurality of communication devices; and identify at least one restriction point communication device that is a restriction point by selecting the at least one communication device from the plurality of communication devices that have at least one reception property that deviates from the at least one network reception property by a predetermined threshold value. The analysis device may be configured to: calculate each network reception property by taking the average of the respective reception property received from each communication device; and identify at least one restriction point communication device that is a restriction point by selecting the communication devices that deviate from that average by a predetermined threshold value.

The analysis device may be configured to: send a configuration message to each of the at least one restriction point communication device, the configuration message comprising data instructing the restriction point communication device to increase that communication device's duty cycle. The restriction point communication device may listen for messages only a proportion of the time and the instruction to increase that device's duty cycle comprises an instruction to listen for a larger proportion of the time.

The analysis device may be configured to: generate a recommendation message comprising data containing a recommendation to install another communication device near each restriction point communication device; and send the recommendation message to a presentation device for display to a user of the mesh network. The at least one reception property may comprise at least one of: the number of unique messages received at the respective communication device, the number of repeated messages received at the respective communication device, the number of unknown network messages received at the respective communication device, and the average received signal strength of the messages received at the respective communication device.

The traffic statistics log may comprise a reliability property for the communication network which is based on the number of probe messages that the profile device receives a response to; and the analysis device may be configured to identify at least one restriction point communication device based on the reliability property. The traffic statistics log may comprise a delay property for the communication network which is based on the difference between receive times at which the probe messages are received by the respective communication devices and send times at which the probe messages are sent by the profile device; and the analysis device may be configured to identify at least one restriction point based on the delay property. The traffic statistics log may comprise values of the lifetime field of the probe messages as received by an addressed communication device; and the analysis device may be configured to identify at least one restriction point based on the averaged value of the lifetime fields.

According to a second aspect of the present invention there is provided a communication device capable of communicating over a communication network comprising a plurality of communication devices, the communication network being configured such that transport of packets through the network is provided by the communication devices in the network listening for and relaying packets, the communication device being configured to: send a plurality of probe messages for transmission through the communication network; send a traffic statistic request message to each of the plurality of communication devices; and receive a traffic statistics message from each of the plurality of communication devices, each traffic statistics message comprising data defining at least one reception property of the reception of at least one of the probe messages at the respective communication device.

The communication device may be configured to: form a traffic statistics log message the traffic statistics log comprising the traffic statistics messages from each of the plurality of communication devices; and send the traffic statistics log message to an analysis device. The communication device may be configured to: form the plurality of probe messages so that each probe message comprises data containing a unique identifier that identifies that particular probe message separate from the others of the plurality of probe messages. The communication device may be configured to: form the plurality of probe messages so that the unique identifier is an incremental count which increases sequentially in turn for each sent probe message.

The communication device may be configured to: form the plurality of probe messages so that each probe message comprises data containing an address field specifying the address of at least one communication device that the probe message is addressed to, and the address field contains an address of at least one of the plurality of communication devices; receive a probe message response for at least one of the plurality of probe messages from the at least one addressed communication device, each probe message response comprising data containing the unique identifier of the probe message that the probe message response is a response to; and calculate a reliability property for the communication network based on the number of distinct unique identifiers that are present in the probe message responses. The communication device may be configured to: form the plurality of probe messages so that each probe message comprises data containing a sent time at which that particular probe message is sent by the communication device.

The communication device may be configured to: form the plurality of probe messages so that each probe message comprises data containing an address field specifying the address of at least one communication device that the probe message is addressed to, and the address field contains an address of at least one of the plurality of communication devices; receive a probe message response for at least one of the plurality of probe messages from the at least one addressed communication device, each probe message response comprising data containing a receive time at which that particular probe message is received by the communication device; and calculate a delay property for the communication network based on the difference between the receive time and the sent time of the probe messages. The communication device may be configured to: form the plurality of probe messages so that each probe message comprises data containing a lifetime field specifying the retransmission lifetime of the message; and each probe message response comprises data containing the value of the lifetime field of that particular probe message as received by the addressed communication device.

The communication device may be configured to: form the plurality of probe messages so that each probe message comprises data containing an address field specifying the address of the communication device that the probe message is addressed to, and the address field may contain a communication device address that is not present in the communication network.

The communication device may be configured to: prior to sending the plurality of probe messages, send a traffic counter reset message to each of the plurality of communication devices, wherein the traffic counter reset message may instruct each of the plurality of communication devices to reset respective traffic counters. The communication device may be configured to: send one traffic counter reset message that instructs all of the plurality of communication devices to reset respective traffic counters. The plurality of probe messages may be ping request messages.

According to a third aspect of the present invention there is provided a method for identifying restriction point devices within a communication network comprising a plurality of communication devices, the communication network being configured such that transport of packets through the network is provided by the communication devices in the network listening for and relaying packets, the method comprising: sending a plurality of probe messages for transmission through the communication network; sending a traffic statistic request message to each of the plurality of communication devices; receiving a traffic statistics message from each of the plurality of communication devices, each traffic statistics message comprising data defining at least one reception property of the reception of at least one of the probe messages at the respective communication device; and identifying, based on the at least one reception property, at least one restriction point communication device from the plurality of communication devices that is a restriction point in the network.

The method may comprise: calculating a network reception property for each different reception property received from the plurality of communication devices; and identifying at least one restriction point communication device that is a restriction point by selecting the at least one communication device from the plurality of communication devices that have at least one reception property that deviates from the at least one network reception property by a predetermined threshold value. The method may comprise: calculating each network reception property by taking the average of the respective reception property received from each communication device; and identifying at least one restriction point communication device that is a restriction point by selecting the communication devices that deviate from that average by a predetermined threshold value. The method may comprise: sending a configuration message to each of the at least one restriction point communication device, the configuration message may comprise data instructing the restriction point communication device to increase that communication device's duty cycle. The restriction point communication device may listen for messages only a proportion of the time and the instruction to increase that device's duty cycle may comprise an instruction to listen for a larger proportion of the time.

The method may comprise: generating a recommendation message comprising data containing a recommendation to install another communication device near each restriction point communication device; and sending the recommendation message to a presentation device for display to a user of the mesh network. The at least one reception property may comprise at least one of: the number of unique messages received at the respective communication device, the number of repeated messages received at the respective communication device, the number of unknown network messages received at the respective communication device, and the average received signal strength of the messages received at the respective communication device.

The method may comprise: forming the plurality of probe messages so that each probe message comprises data containing a unique identifier that identifies that particular probe message separate from the others of the plurality of probe messages. The method may comprise: forming the plurality of probe messages so that the unique identifier is an incremental count which increases sequentially in turn for each sent probe message. The method may comprise: forming the plurality of probe messages so that each probe message comprises data containing an address field specifying the address of at least one communication device that the probe message is addressed to, and the address field contains an address of at least one of the plurality of communication devices; receiving a probe message response for at least one of the plurality of probe messages from the at least one addressed communication device, each probe message response comprising data containing the unique identifier of the probe message that the probe message response is a response to; and calculating a reliability property for the communication network based on the number of distinct unique identifiers that are present in the probe message responses; The method comprise: identifying at least one restriction point communication device based on the reliability property.

The method may comprise: forming the plurality of probe messages so that each probe message comprises data containing a sent time at which that particular probe message is sent by the communication device. The method may comprise: forming the plurality of probe messages so that each probe message comprises data containing an address field specifying the address of at least one communication device that the probe message is addressed to, and the address field may contain an address of at least one of the plurality of communication devices; receiving a probe message response for at least one of the plurality of probe messages from the at least one addressed communication device, each probe message response comprising data containing a receive time at which that particular probe message is received by the communication device; calculating a delay property for the communication network based on the difference between the receive time and the sent time of the probe messages. The method may comprise: identifying at least one restriction point communication device based on the delay property.

The method may comprise: forming the plurality of probe messages so that each probe message comprises data containing a lifetime field specifying the retransmission lifetime of the message; and each probe message response comprises data containing the value of the lifetime field of that particular probe message as received by the addressed communication device; and identifying at least one restriction point based on the averaged value of the lifetime field as received by the addressed communication device.

The method may comprise: forming the plurality of probe messages so that each probe message comprises data containing an address field specifying the address of the communication device that the probe message is addressed to, and the address field may contain a communication device address that is not present in the communication network. The method may comprise: prior to sending the plurality of probe messages, sending a traffic counter reset message to each of the plurality of communication devices, wherein the traffic counter reset message instructs each of the plurality of communication devices to reset respective traffic counters.

The method may comprise: sending one traffic counter reset message that instructs all of the plurality of communication devices to reset respective traffic counters. The plurality of probe messages may be ping request messages.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention will now be described by way of example with reference to the accompanying drawings. In the drawings:

FIG. 1A shows a schematic diagram of a wireless communication device;

FIG. 1B shows a schematic diagram of another communication device;

FIG. 2 shows a schematic diagram of a network containing a plurality of communication devices;

FIGS. 3A and 3B illustrate the transport of a packet through the network;

FIG. 4 shows a schematic mesh network performance test message sequence chart; and

FIG. 5 shows another schematic mesh network performance test message sequence chart.

DETAILED DESCRIPTION

The following description is presented to enable any person skilled in the art to make and use the invention, and is provided in the context of a particular application. Various modifications to the disclosed embodiments will be readily apparent to those skilled in the art.

The general principles defined herein may be applied to other embodiments and applications without departing from the spirit and scope of the present invention. Thus, the present invention is not intended to be limited to the embodiments shown, but is to be accorded the widest scope consistent with the principles and features disclosed herein.

The present invention relates to an analysis device that is capable of analysing a communication network and determining where within the network optimizations may be required to improve the performance of the communication network. The analysis device may be known as a collector device and/or a concentrator device. The present invention also relates to a profile device that is capable of profiling a communication network for its performance characteristics. The communication devices within the communication network may be a communication device that can transmit and receive according to a mesh network protocol. Accordingly the communication devices may be part of the mesh network. Within the mesh network, packets may be transferred between devices that are part of the mesh network by the communication devices that form the communication network listening for and relaying packets that the communication devices have received. The communication device may be a wireless communication device.

The profiling device may profile the communication network by sending out a plurality of probe messages in to the network. The other communication devices within the network can log the reception of those messages and properties associated with that reception. This log can then be sent back to the communication device, at the request of the communication device. This log of information may be sent to the analysis device for analysis to determine where in the network the performance of the network may be improved by altering the network properties of an individual communication device, and/or by installing another communication device in the vicinity of another individual communication device.

The profiling device may also use at least one of the other communication devices to help profile the network by instructing that other communication device to respond to the probe messages thus increasing the number of probe messages and also potentially increasing the number of routes taken by the probe messages through the network.

FIG. 1A shows a schematic diagram of an example communication device in accordance with the present invention. In FIG. 1A, the communication device 10 has an antenna 20 connected to a transceiver 30. The communication device 10 can use the transceiver to communicate with at least one other communication device according to a communications protocol. The communication device 10 can use the transceiver to transport packets over a communication network where the network is provided by a plurality of communication devices in the network listening for and relaying packets. The communication device 10 can use the transceiver to communicate in a mesh network.

The communication device 10 also comprises a processor 40 that is capable of executing a set of program instructions that are stored in a memory 50. The memory 50 can be a non-volatile memory that stores in non-transitory form program code that is executable by the processor 40 to cause the communication device to communicate according to the communications protocol. The processor 40 can be a microprocessor. The memory 50 may be part of processor 40 or connected to processor 40 via a bus. Whilst the processor 40 and transceiver 30 are shown in FIG. 1A as separate elements, it will be appreciated that at least processor 40 and transceiver 30 could be incorporated in to one element. For example, being incorporated on a single chip.

The communication device 10 may also comprise a power source 60. This power source may be a battery. Alternatively, the communication device 10 may not comprise a power source and be connected to an external power source such as an electrical outlet.

The communication device 10 may also comprise an interface 70 for sending and receiving data that is to be sent using the communications protocol. This interface 70 may be a wired or wireless link to sensors for sensing external events, such as the operation of a light switch in the home environment described above, or a link to appliances for issuing control signals to those appliances, such as the light in the home environment described above.

FIG. 1B shows a schematic diagram of another example communication device in accordance with the present invention. In FIG. 1B, the communication device 90 has a wired network interface 80. The communication device 90 can use the wired network interface 80 to communicate with at least one other communication device according to a communications protocol. The communication device 90 can use the wired network interface 80 to transport packets over a communication network where the network is provided by a plurality of communication devices in the network listening for and relaying packets. The communication device 90 can use the wired network interface 80 to communicate in a mesh network. The other illustrated elements of the communication device 90 are as described in relation to FIG. 1A.

The structures shown in FIGS. 1A and 1B (and the other block apparatus diagrams included herein) are intended to correspond to a number of functional blocks in an apparatus. This is for illustrative purposes only. FIGS. 1A and 1B are not intended to define a strict division between different parts of hardware on a chip or between different programs, procedures or functions in software. In some embodiments, some or all of the algorithms described herein may be performed wholly or partly in hardware. In many implementations, at least part of interface 70, transceiver 30 and wired network interface 80 may be implemented by a processor actioned under software control (e.g. the CPU of a communication device). Any such software may be stored on a non-transient computer readable medium, such as a memory (ROM, cache, hard disk etc) or other storage means (USB stick, CD, disk etc).

The communication devices described above can form part of a communication network that is configured such that transport of packets through the network is provided by a plurality of communication devices such as those described in FIGS. 1A and/or 1B. An example of such a network is shown in FIG. 2, which represents a house having a distributed lighting system. The system comprises a light switch unit 201 and light fittings 202, 203, 204, 205. Light switch unit 201 is integrated with a wireless communication device 212. Light fittings 202 to 205 are integrated with respective wireless communication devices 206, 207, 208, 209. The house has a mains electrical supply which powers the light fittings and their respective wireless communication devices 206 to 209. Light switch unit 201 and its wireless communication device 212 are powered by a local battery 211.

The house contains other items of equipment that contain other wireless communication devices. For example, there is a tablet computer 210 which contains a wireless communication device 213, and a mobile phone 215 which contains a wireless communication device 216. There is also a sensor 220 for detecting the open/closed state of window 218, which contains communication device 219. Computer 210, phone 215 and sensor 220 are powered by batteries 214, 217 and 221 respectively. The house may also contain an analysis device 222 for performing analysis on gathered network information. The analysis device 222 may be a communication device as described herein. Alternatively the analysis device 222 may be remote from the house and connected to the house via a network, such as the internet. The analysis device 222 may be part of a cloud network. The analysis device 222 may be part of one of the other communication devices referred to herein.

Wireless communication devices 206 to 209, 213, 216 and 219 operate according to the same wireless communication protocol. That could be a relatively short-range protocol. For example the effective range of each device could be less than 25 m. That characteristic can permit the devices to use less power for transmitting and/or receiving than would be expected in a longer range protocol. The protocol could be one that imposes no common time-base at or below the transport level, or below the application or presentation levels. In other words, the devices in the network operate asynchronously of each other. That characteristic can reduce the devices' power consumption by reducing their need for accurate clocks running continuously. In one example, the devices could operate according to the Bluetooth protocol, specifically the Bluetooth Low Energy protocol. The devices could use other protocols, for instance IEEE 802.11.

Devices 206 to 209 are configured cooperatively in order that the light fittings 202 to 205 know to respond to signals from the light switch 201. This may be done by the devices 206 to 209 storing a common network key in their respective memories. The network key may be negotiated by the devices 206 to 209 in the network. The network key may be stored in the device 206 to 209 by means of another device such as mobile phone 215 communicating with the wireless device of the light switch and/or light fittings to communicate with the wireless devices of the light fittings to cause them to store the network key. The network key may be used to sign all packets sent over the network.

The communication devices in FIG. 2 are all connected to or fully integrated with another device—a “consumer”—on behalf of which the communication device transmits and receives packets over the network. In many cases the primary function of the consumer may have nothing to do with the network. Consumer devices have varying levels of complexity. In one example a consumer device might be a tablet computer; in another it might just be a clock configured to count down to an expiry date of some perishable goods. It also possible for the communication device to be a consumer itself. An example of such a scenario might be when a communication device uses X10, which is a protocol designed to support the integration of electronic devices within the home.

A connection between the communication device and its associated consumer may be wired or wireless and may be performed by the interface 70 of communication devices 10, 90. The communication device may be contained within the same housing as the consumer. In many implementations the consumer device might be fully integrated with the consumer; they might even share circuitry. Often the communication device may be implemented by a chip within the consumer. An example of this is communication device 216 within phone 215. In other implementations the communication device and the consumer may be separate devices that are connected together. For example, the communication device might be a BLE tag connected to a PC.

For the purposes of this document, the communication device is considered to be the combination of hardware and/or software that implements the protocol governing the network, thereby implementing the packet transport that enables the consumer to communicate over the network.

Each communication device may be capable of acting as a relay in the network. An example of this is shown in FIG. 3, which shows the same distributed lighting system as FIG. 2. The network is configured as a mesh network so, at least in theory, all devices that are part of the network have a responsibility to act as relays. A relay device suitably retransmits any packet that it recognises as having originated from the network. A relay device may retransmit packets that have been injected in to the network at that relay device. The relay device might also take steps to prevent old packets from being continuously bounced around the network, e.g. by decrementing a “time-to-live” value, or more generally, a lifetime value, in the packet before forwarding it on. More generally, if the lifetime value is equal to a threshold value then the packet is not retransmitted. The relay device might also take steps to prevent packets it has already retransmitted before being propagated around the network multiple times; the relay device may do this by only forwarding the packet if it is new.

As discussed above, in order to avoid packets being bounced around the network indefinitely, each packet suitably includes a lifetime field that defines the lifetime of the packet within the network. A communication device that receives the packet suitably checks whether the lifetime field is equal to a threshold value before retransmitting the packet. If the lifetime value is equal to the threshold, the communication device does not retransmit the packet. Otherwise the communication device does retransmit the packet. In one example the lifetime field is a Time-To-Live (TTL) field. This is a value in the packet that is suitably decremented each time that the packet is retransmitted. In one example the TTL value is decremented by one at each retransmission, with each communication device that receives the packets retransmitting it until the TTL value is decremented to zero. In another example the lifetime field is a Max Hop Count (MHC) field. In this example each communication device stores a threshold MHC value, which is a positive, non-zero number. The MHC value in each packet may be incremented by one each time that the packet is retransmitted, with each communication device that receives the packets retransmitting it until the MHC value reaches the device's stored MHC threshold.

FIG. 3A shows an example of the network operating according to mesh principles. Light switch 201 transmits a packet addressed to all of devices 206 to 209 instructing light fittings 202 to 205 to switch on. This packet is propagated by all devices that receive it, eventually reaching light fitting 205, which is out of range of light switch 201, the source of the packet. The packet is propagated via light fitting communication devices 206 to 209, then via communication device 216 and window sensor communication device 219 finally arriving at light fitting communication device 209.

The network may also be configured to implement flood routing as a way of propagating messages within the mesh network, which is well suited to ad hoc networks. The phone 215 and the tablet computer 210 are both portable devices that change location within the network as a user picks them up and moves them. They may also occasionally leave the network and then reappear some time later. For example, when a user takes them out of range of the network by taking them out of the house and later returns them to the house. The network's topology is thus subject to random alteration.

It can be appreciated from FIG. 3A that if the phone 215 was not present in the upstairs of the house, then there would be only a single route to light fitting 205 via communication device 219 of sensor 220 for window 218. This is because, in this example, light fitting 205 is out of range of the downstairs light fittings 202, 203, 204 and the light switch 201, but in range of window 218. Window 218 is within range of at least light fittings 202 and 203. There may be more than one light fitting 205 present in the upstairs of the house and each of those light fittings 205 may be out of range of the downstairs light fittings 202, 203, 204. In such a situation the window communication device 219 may in effect act as an articulation point or one vertex of a bridge between the upstairs mesh network and the downstairs mesh network. In this context, a bridge is referring to a bridge between two parts of the mesh network. As opposed to denoting elements that link two or more communication technologies together.

The performance and reliability of the mesh network as a whole may then become dependent on these bridge communication devices, such as window communication device 219. This is because if the bridge communication device does not forward or retransmit packets originating from the network then the communication route between the two or more networks that the bridge communication device bridges may be lost. This may only be a temporary loss of communication, but in such a situation there may at a minimum be packet loss or a loss of connection entirely.

Such a situation may arise, where a device does not retransmit packets, if constant listening is not able to be performed by all of the devices in the mesh network. It may also arise when a device does not receive the signal from another device with sufficient power to be able to decode the information contained in that signal.

Constant listening can be an expensive operation and should generally be avoided in contexts where power availability is an issue. Although switch communication device 212 and window communication device 219 are capable as acting as relays, they are both battery powered and should reduce power consumption where possible. Therefore, one or both of those devices may deliberately reduce their receive period/duration with the aim of conserving battery power. This manages the amount of energy used for receiving information.

In the case of FIG. 3B, window communication device 219 may decide to reduce its receive period/duration as it is battery powered. It may also decide to reduce its receive period/duration because it has detected that devices 206, 207 and 209 are all within range and are all capable of acting as relays. Where there are multiple relays within range, each relay may decide to reduce its receive period/duration under the assumption that at least one of the relays within range may receive any retransmitted packet at a given time. The other relay devices may then receive the retransmitted packet at a later time when that first relay retransmits the packet. In the situation shown in FIG. 3B, window communication device 219 has therefore decided to shorten its listen periods so that it only listens for 10% of the time. The proportion of time that a device listens for may be known as the duty cycle of the device.

In FIG. 3B, a period when the window communication device 219 is not listening is shown. As it is not listening at that moment, the window communication device 219 does not receive the packets that are retransmitted by the device 206 and 207 that are connected to downstairs lights 202 and 203. As window communication device 219 does not receive the packets that are retransmitted by devices 206 and 207, communication device 219 does not retransmit the packet. This means that device 209 which is attached to upstairs light 205, and outside of the communication range of downstairs light devices 206 and 207, does not receive the packet that has been retransmitted by devices 206 and 207.

As is shown in the situation shown in FIG. 3B, device 219 may provide a single point of failure within the mesh network because it can function as a bridging device linking the upstairs portion of the mesh network to the downstairs portion of the mesh network. It would therefore be desirable to either increase the duty cycle of bridge devices such as device 219 so that they listen for a larger proportion of the time, or add additional devices near device 219 which can act as alternative bridges so that there is no longer a single point of failure in that part of the network. To be able to know where to target additional devices within the mesh network, or to know which devices ought to be limited to using a higher duty cycle, the mesh network may be profiled to establish the health and/or performance of the mesh network and/or locate bridging devices such as device 219.

There are a number of ways in which the mesh network may be profiled to establish the performance of the mesh network. Some examples are described below. These examples either make use of a single mesh device as the profiling device which sends test packets in to the network or use several mesh devices that work collaboratively to send test packets in to the network. In the case of at least two mesh devices working together, a first communication device sends packets in to the network which are addressed for the at least one other communication device in the network. The other communication device can then respond with messages addressed to the first communication device. Statistics about the mesh network can also be gathered from the rest of the communication devices present in the mesh network. The profiling device itself can then analyse the collected data concerning the communications through the network, in which case it also performs the role of the analysis device 222. Alternatively, the profiling device can send a log message to the analysis device 222 which contains the collected data concerning the communications through the network. The analysis device 222 can then analyse the data contained in this log message.

FIG. 4 shows a schematic message sequence chart for a first test that can be used to profile the mesh network. It will be understood that whilst the messages are shown in a sequence that there may be concurrency between at least some of these messages. For example, one message may be sent to multiple devices in substitute for separate messages to each device; and the responses from devices may arrive in an alternative order.

A communication device 400 that is acting as the profiling device may initially send a DIAGNOSTIC_RESET message 401 in to the communication network. The diagnostic reset message 401 may not be addressed to any particular communication device within the network. This is because it may need to be acted upon by all communication devices, network nodes 410, in the network. This diagnostic rest message 401 causes the communication devices operating in the communication network to reset one or more counters within each communication device. These counters may be stored in a memory such as memory 50 shown in FIGS. 1A and 1B. The traffic counters may store statistics concerning the transport of packets through the communication network as seen by that particular communication device. The traffic counters may store statistics concerning:

-   -   the number of lost packets,     -   number of consecutive packets lost,     -   maximum number of repeated packets seen,     -   minimum number of repeated packets seen,     -   average number of repeated packets seen,     -   average RSSI seen over the received packets; as measured during         the reception of those packets,     -   number of unknown messages seen,     -   number of messages/packets received, and/or     -   number of repeated messages/packets.

It will be appreciated that the diagnostic reset message referred to in this document may alternatively be described as a traffic counter reset message.

By resetting the counters prior to running any profile tests, the results that are generated can be known to relate to the period during which tests were run.

The diagnostic reset message 401 may be a short message that does no more than identify itself as a traffic counter reset message. For example, the message may contain data that comprises an opcode that is set to identify the message as a diagnostic message, and also as a reset sub-message within the diagnostic message type. The message may contain data that identifies the message as an instruction to reset the traffic counters within the network node 410.

The profile device 400 can then send out a predefined number (k) of PING_REQUEST messages 402, 403 in to the network. Each ping message 402, 403 can comprise a payload that may contain a unique identifier that identifies that particular ping message separate from the other of the predefined number of ping messages. The ping message unique identifier may be an incremental count that is incremented for each ping message that is sent. Each ping message 402, 403 therefore contains a different number in the incremental count field within the data defining the payload of the ping message. Each ping message can comprise a payload that may also contain a packet sent time. This sent time is a record of the time that the packet was sent by the profile device 400. It is the nature of the communication network that those ping request messages will be retransmitted by the network nodes until the lifetime value of that ping request message has reached the threshold value or the communication devices recognise the message as an “old” message that they have already seen, as described above. The ping request messages can therefore propagate through the communication network by at least most of the communication devices, the network nodes, listening for and retransmitting the packets.

It will be appreciated that the ping request messages may be alternatively be described as a probe message.

The predefined number may be 1000, 5000, 10000 or 20000. The predefined number may be determined in dependence on the number of network nodes present in the communication network. For instance, a higher predefined number may be chosen by the profiling device when more network nodes are present in the communication network.

The payload of the ping messages may be used by the network nodes 410 to calculate the packet loss over the test and the number of repeated messages that are received by the network nodes 410. The packet loss can be calculated by logging the ping message unique identifier for each of the ping messages that are received. Once all of the predefined number of ping messages have been sent, each network node 410 can search for unique identifiers that are missing from the unique identifier log. The number that are missing can be used to give the packet loss over the test. The number of repeated messages can be calculated by the network nodes 410 by summing the number of times a particular unique identifier has been received by that network node 410 during the test.

The ping request message 402, 403 may contain data that comprises an opcode that is set to identify the message as a ping message, and also as a ping request sub-message within the ping message type. The ping message 402, 403 may contain data that identifies the message as a request for a ping response that may be addressed to a particular communication device. The PING_REQ 402, 403 message may need to be addressed to a particular device to be compliant with the protocol that the communication network is compliant with. Alternatively, the protocol may define that, instead and/or as well as being capable of being address to a particular device, the ping message may be capable of being addressed to a group of particular devices. The group of particular devices may have a group identifier, group address, or group ID, associated with them and this group ID may be used in place of the device ID, or device address associated with a particular device.

In the case shown in FIG. 4, no response is required to the ping message. Therefore, the profile device 400 may set the recipient address for each of the ping request messages 402-403 (also written as 402, 403) to that of a device, or group, that is not present in the communications network. In this case, there may be no device that has that particular address and so none of the network nodes 410 within the communication network m respond with a response to the ping request 402, 403 message.

Once the predefined number of ping request messages (k) have been sent by the profile device 400, the profile device 400 can request that each of the network nodes 410 sends that network node's traffic statistics to the profile device 400. This can be achieved by the profile device 400 sending a DIAGNOSTIC_READ messages 404, 406 addressed to that particular node. The profile device 400 can send a separate diagnostic read message 404, 406 to each of the network nodes 410 in the communication network. The profile device 400 may send a diagnostic read message 404, 406 to a group of the network nodes 410 in the communication network that are part of that particular group and identified by a group address or group ID. The diagnostic read message 404, 406 requests that the network node sends the requesting device at least one of the traffic statistics that have been compiled by the network node 410.

The diagnostic read message 404, 406 may contain data that comprises an opcode that is set to identify the message as a diagnostic message, and also as a traffic statistics request sub-message within the diagnostic message type. The diagnostic read message 404, 406 may contain data that identifies the message as a request for traffic statistics that may be addressed to a particular device.

It will be appreciated that the diagnostic read message referred to in this document may alternatively described as a traffic statistic request message.

Each network node that receives a traffic statistic request message 404, 406, may send a message back to the requesting device, in this case the profile device 400, which contains the requested traffic statistics. The network node 410 forms and sends a DIAGNOSTIC_TRAFFIC_STATS message 405, 407 to the profile device 400. This diagnostic traffic statistics message 405 is addressed to the device that sent the diagnostic read message 404, 406. The payload of the traffic statistics message 404, 406 may include data that contains:

-   -   the number of messages received by the particular network node,         since the traffic counters were reset,     -   the number of repeated messages received by the particular         network node, since the traffic counters were reset. As         discussed above, the number of repeated messages can be         calculated by referring to the ping message unique identifier         and summing the number of times that each identifier has been         received.     -   the number of unknown network messages received by the         particular network node, since the traffic counters were reset.         The unknown network messages being messages that cannot be read         by that network node. This could be because it contains a         network identification code that is not known to the network         node or contains a network code that is unreadable by the         network node.     -   Statistical information pertinent to the distribution of the         RSSI of the messages received by the network node, since the         traffic counters were reset. This may be in the form of the         average RSSI of the messages received by the network node, since         the traffic counters were reset. This may also be in the form of         other statistical variances of the RSSI of the messaged received         by the network. For instance, the mean, mode, variance or         standard deviation of those values. The RSSI may be averaged for         only the messages that are recognised as being identified as a         message for the communication network that the network node is         part of.     -   the number of lost packets/messages, since the traffic counters         were reset. As discussed above, the number of lost packets can         be calculated by referring to the ping message unique identifier         and searching for unique identifiers that are missing from the         unique identifier log.     -   number of consecutive packets lost,     -   maximum number of repeated packets seen,     -   minimum number of repeated packets seen,     -   average number of repeated packets seen,     -   average RSSI seen over the received packets; as measured during         the reception of those packets,     -   number of unknown messages seen,     -   number of messages/packets received, and/or     -   number of repeated messages/packets.

The diagnostic traffic statistics message 405, 407 may contain data that comprises an opcode that is set to identify the message as a diagnostic message, and also as a traffic statistics sub-message within the diagnostic message type. The diagnostic traffic statistics message 405, 407 may contain data that identifies the message as a containing traffic statistics that have been measured by the sending device.

Once all of the network nodes have been queried using the diagnostic traffic statistics read message 404, 406 and the network nodes have sent their responses then the profile device 400 may use these traffic statistics to calculate the congestion that is seen by each network node 410 in the communication network. The congestion at a particular node in the network may be determined by:

-   -   comparing the individual levels of packet loss at that         particular network node 410 with the average over the whole         communication network. A high level of packet loss at a         particular node relative to the network average may indicate a         high level of congestion at that network node 410.     -   comparing the individual level of repeated messages seen by that         particular network node 410 with the average over the whole         communication network. A low level of repeated messages may         indicate low total throughput at that network node due to there         being few other network nodes within communication distance of         that particular network node. A low level of repeated messages         may indicate an area of the communication network around that         particular network node which is susceptible to congestion.     -   more generally, by comparing the traffic statistics recorded by         a particular node with the average traffic statistics across all         nodes in the network.

Alternatively, or as well as, the traffic statistics messages can be formed in to a traffic statistics log message. This log message may be sent to an analysis device 222 for further analysis to identify particular communication devices having particular properties using methods described below.

FIG. 5 shows a schematic message sequence chart for second and third tests that can be used to profile the mesh network. As with FIG. 4 above, it will be understood that whilst the messages are shown in a sequence that there may be concurrency between at least some of these messages. For example, one message may be sent to multiple devices in substitute for separate messages to each device; and the responses from devices may arrive in an alternative order.

A communication device 500 that is acting as the profiling device may initially send a DIAGNOSTIC_RESET message 501 in to the communication network. This diagnostic reset message 501 is as described in relation to FIG. 4 above and diagnostic reset message 401. By resetting the counters prior to running any profile tests, the results that are generated can be known to relate to the period during which tests were run.

The profile device 500 can then send out a predefined number (k) of ping request messages 502, 506 in to the network. The profile device 500 may send each ping request message in turn waiting for a response from the device that a ping response has been requested from before sending the next ping request message. The profile device 500 may alternatively send the next ping request message after a predefined timeout period if no response has been received within that timeout period. The PING_REQ 502, 506 message may need to be addressed to a particular device to be compliant with the protocol that the communication network is compliant with. In the case shown in FIG. 5, the device that is required to respond to each ping request message 502, 506 is the response device 520. The ping messages may therefore comprise data defining the device address that the message is addressed to. As discussed above in relation to FIG. 4, the protocol may define that, instead and/or as well as being capable of being address to a particular device, the ping message may be capable of being addressed to a group of particular devices. The group of particular devices may have a group identifier, group address, or group ID, associated with them and this group ID may be used in place of the device ID, or device address associated with a particular device. Thus apart from now being addressed to the response device or a group of response devices, the ping request messages 502, 503, 506, 507 are as described above in relation to FIG. 4. The response devices 520 may be one or more of the network nodes, and so communication devices, of the communication network.

As shown in FIG. 5, the profile device 500 sends each of the ping request messages in to the network by transmitting the ping request message. The ping request message may be received by one or more network nodes and those network nodes can retransmit the ping request message 503, 507 as long as the lifetime value for the packet has not reached the threshold value as described above. Although it might be assumed that only one retransmission is shown in FIG. 5 before the ping request message reaches the response device, it will be appreciated that there could be many retransmissions by the network nodes 510 within the communication network. As discussed above, the ping request messages may therefore propagate through the communication network by each communication device, the network nodes, listening for and retransmitting the packets.

The retransmitted ping request messages may eventually reach the response device 520 which is the device that the ping request message was addressed to. The response device may record the lifetime value of the ping request message as received at the response device. The lifetime value may be, as discussed above, a “time-to-live” value or a max hop count value. The response device may also record the RSSI of the ping request message as received at the response device 520. More generally, the response device may record the signal strength of the ping request message 502, 507. The response device 520 can, in response to the ping request message, form a PING_RESPONSE message 504, 508 and transmit this message for transmission through the communication network to the profile device 500. This ping response message 504, 508 is addressed to the device that originally sent the ping request message 503, 507. In this case, the ping response message 504, 508 may be addressed to the profile device 500. The payload of the ping response message 504, 508 may include data that contains one or more of:

-   -   the recorded lifetime value of the particular ping request         message 503, 507 that the ping response message is a response         to.     -   the RSSI value associated with the reception of the particular         ping request message 503, 507. More generally, the RSSI value         may be the signal strength of the particular ping request         message 503, 507.

The ping response messages 504, 508 are shown in FIG. 5 propagating from the response device 520 via the network nodes 510, the ping response messages 505, 509 being retransmitted by the network nodes 510 and being received by the profile device 500.

It will be appreciated that the ping response messages referred to in this document may alternatively be described as probe response messages and that references to a response device may be taken to include a group of response devices when the probe messages are addressed to more than one device.

The ping response message 504, 505, 508, 509 may contain data that comprises an opcode that is set to identify the message as a ping message, and also as a ping response sub-message within the ping message type. The ping message 504, 505, 508, 509 may contain data that identifies the message as a response to a ping request message that may be addressed to a particular communication device.

Once the response to the ping request message 502 has been received by the profile device 500, the profile device 500 can form the next ping request 506 and transmit it for transmission over the communication network to response device 520. Alternatively, if no response is received from the response device 520 within a predefined time period, a timeout period, then the profile device 500 can form the next ping request 506 and transmit it for transmission over the communication network to response device 520, on the basis that the previous ping request and/or response was lost in the network.

The profile device 500 may log the number of ping responses that it receives from the response device 520. The profile device 500 may log the number in a counter. That counter may be stored in a memory of the device. The profile device may alternatively log the number of dropped ping responses, i.e. those ping request messages that do not have a corresponding ping response message. The profile device 500 can determine whether the ping response message was received at the profile device 500 within a given time period, or timeout, of the ping request message being sent by the profile device 500.

Once all of the predetermined number of ping request messages (k) have been sent by the profile device 500, the profile device 500 can request that each of the network nodes 510 sends that network node's traffic statistics to the profile device 500. The network nodes 510 may include the response device 520 as it can also be a network node 510 within the communication network. This request is achieved using the diagnostic read messages discussed in relation to FIG. 4 and as shown in FIG. 5 as diagnostic read messages 511, 513 and diagnostic traffic statistics messages 512, 514. The profile device 500 may choose not to request the traffic statistics from the network nodes 510 if only the ping response statistics are required.

If, and once, all of the network nodes have been queried using the diagnostic traffic statistics read message 511, 513 and the network nodes have sent their responses then the profile device 500 may use these traffic statistics as per the discussion in relation to FIG. 4. As also discussed in relation to FIG. 4, alternatively, or as well as, the traffic statistics messages can be formed in to a traffic statistics log message. This log message may be sent to an analysis device 222 for further analysis to identify particular communication devices having particular properties using methods described below.

As theoretically twice as many messages have been sent through the network, i.e. both the ping request messages and the ping response messages, the test shown in FIG. 5 may give a better indication as to the congestion present in the network. Message have also originated from two different locations in the network.

As described above, the profile device 500 may log either the number of ping requests that have successfully been responded to by the response device 520 or the number of ping requests that have not been responded to within a given time period. Based on the log, the profile device 500, or the analysis device 222, may calculate the reliability of the communication network as the ratio, or percentage, of messages for which a reply was successfully received. The profile device 500 may include this reliability in the traffic statistics log message that is sent to the analysis device 222.

As discussed above, each ping message 502, 506 that is sent by the profile device 500 can comprise a payload that may contain a unique identifier that identifies that particular ping message separate from the other of the predefined number of ping messages. The ping message unique identifier may be an incremental count that is incremented for each ping message that is sent. Each ping message can comprise a payload that may also contain a packet sent time. This sent time is a record of the time that the packet was sent by the profile device 500.

The ping response messages can comprise a payload that may contain a packet received time. The packet received time may also be known as the ping request received time. This packet received time is a record of the time that the particular ping request message packet, to which the particular ping response message is a response, was received by the response device 520. The profile device 500 may log the sent time, which is included in each particular ping request message, for each particular ping request message. When the profile device 500 receives the ping response messages that contain the packet receive time, the profile device 500 may log the received time against the identifier of the particular ping request message. At the end of the ping process, the profile device 500 may then calculate the difference between the sent time and the received time to calculate the delay, for that particular ping request message, caused by transmission through the communications network.

The profile device 500 may also log the time at which the ping response message is received by the profile device 500. The profile device 500 may calculate the difference between the receive time of the ping response message and the sent time of the ping request message to generate the round-trip time through the communication network.

The calculated delay for each successful ping request may be averaged to generate the average delay over the whole test. The minimum and maximum values may also be selected to generate the maximum and minimum delays through the network. The maximum and/or minimum delays could be compared to the lifetime value included in the particular ping response message. This comparison could show whether the difference in delay is caused by a longer path through the network, i.e. more retransmissions, or slow retransmission of the message at each hop in the mesh network, i.e. a low number of retransmissions but a higher time between each retransmission. This calculation and comparison may be undertaken by either analysis device 222 or profile device 500.

The above has described a number of ways in which the mesh network may be profiled to establish the performance of the mesh network. These tests may generate data concerning:

-   -   the congestion in the mesh network (i.e. how well the mesh         network is coping with a certain level of throughput of         packets/messages);     -   the reliability of the mesh network in transporting messages         between two network nodes, two particular communication devices,         of the mesh network (i.e. how many of the messages between these         two devices are successfully transported by the mesh network);         and/or     -   the delay in message transport that is introduced by the         transport of messages between two network nodes, two particular         communication devices, of the mesh network (i.e. how long it         takes messages sent between these two devices to propagate         through the mesh network from one to the other of those two         devices).

The profile device 400, 500 may first run the test shown in FIG. 4 where the mesh network is generally profiled using ping request messages, or probe messages, that are not addressed any network node present in the network to determine how messages propagate through the network when sent from one device. The profile device 400, 500 may then identify particular network nodes to profile further based on the data generated by the test shown in FIG. 4. Alternatively, the analysis device 222 may identify particular nodes to profile further based on the data generated by the tests shown in FIG. 4 and sent to the analysis device 222 in the traffic statistics log message. The analysis device 222 may then send an instruction message to profile device 400, 500 instructing the profile device 400, 500 to profile further.

The analysis device, or profile device 400, 500, may identify network nodes 410, 510 that have a particular set of message reception characteristics. These message reception characteristics may comprise:

-   -   a high repeated message count which may indicate a network node         410, 510 that is located within reception range of a plurality         of other network nodes.     -   a low repeated message count which may indicate a network node         410, 510 that is located at the edge of the mesh network and in         communication with few other network nodes.     -   a low average received signal strength of the messages received         by the network node. This may indicate a network node that is         located near the edge of the mesh network because the signals         that are received by that network node are low.

The profile device 400, 500 may then run at least one of the tests shown in FIG. 5 between the profile device 400, 500 and the one or more network nodes that have been selected based on the message reception characteristics. The profile device 400, 500 can run the test or tests against each of the selected network nodes in turn designating each one as the response device and addressing the probe messages, or ping requests, at that network node 410, 510.

The results of these tests may be used to identify characteristics of the underlying mesh network such as bottlenecks, articulation points, and/or bridges between different parts of the mesh network. As discussed above an articulation point and/or a bridge may be a mesh device that links two parts of the mesh network together. As an example, it follows therefore that such a device may be a bottleneck within the network as that one device can be responsible for retransmission of message between the two parts of the mesh network. Such an identification may be undertaken by the analysis device 222, or alternatively by profile device 400, 500.

The results of these tests may be used to identify network nodes that are operating sub-optimally. The results of these tests may also identify network nodes in the mesh network that are operating sub-optimally within the mesh network, for instance because they are located at the edge of the transmit region of the other network nodes. The identification of these network nodes can then mean that recommendations can be compiled as to how the performance of the mesh network can be improved.

The bottlenecks, articulation points and/or bridges can be individual network nodes within the mesh network that link different portions of the mesh network together. For instance, as the window communication device 219 can do in FIG. 2 in linking the upstairs lights to the downstairs lights. These restriction points in the mesh network can be grouped together as having a similar set of properties. A restriction point may be identified by the test results described above.

A mesh node that is functioning as a restriction point may comprise one or more of the following characteristics:

-   -   a high level of congestion at that particular mesh node, this         may indicate that a single node is handling the retransmission         within a particular area of the mesh network;     -   a high repeated message count, this may indicate that the         network node is a convergence point in the network and is         receiving messages from many sources.     -   a high level of bounce back messages, these are messages that         are received that have a lifetime value adjusted by one         increment meaning that it has only been retransmitted once. In         the example of the lifetime value being a TTL, receiving         messages with a TTL of one less than the message sent. This may         show that the node has many immediate neighbours.

Once a mesh node has been identified as a restriction point this information can be presented to the user, either directly by the profile device 400, 500 or by sending information to another device for presentation to the user, with a recommendation that another mesh communication device be installed near the identified device.

The analysis device 222, or profile device 400, 500, may also send an instruction to the communication device that has been identified as a restriction point to increase its listening duty cycle so that it is listening for messages to retransmit for a longer proportion of the time. This instruction may be in the form of a configuration message that comprises a payload that contains data containing an instruction to the identified communication device to increase the device's duty cycle. The duty cycle update message may be addressed to the particular identified communication device.

A mesh node that is operating sub-optimally because it is operating on the edge of the mesh network may comprise one or more of the following characteristics:

-   -   a low average received signal strength;     -   a low repeated message count;     -   a repeated message count that is less than the number of         messages transmitted by the mesh node.

Once a mesh node has been identified as a peripheral network node this information can be presented to the user, either directly by the profile device 400, 500 or by sending information to another device for presentation to the user, with a recommendation that another mesh communication device be installed between the identified device and the rest of the mesh network. The presentation device may be the profile device 400, 500 itself or another device. The presentation device may be a device such as tablet computer 210.

The applicant hereby discloses in isolation each individual feature described herein and any combination of two or more such features, to the extent that such features or combinations are capable of being carried out based on the present specification as a whole in the light of the common general knowledge of a person skilled in the art, irrespective of whether such features or combinations of features solve any problems disclosed herein, and without limitation to the scope of the claims. The applicant indicates that aspects of the present invention may consist of any such individual feature or combination of features. In view of the foregoing description it will be evident to a person skilled in the art that various modifications may be made within the scope of the invention. 

What is claimed is:
 1. An analysis device for analysing a communication network comprising a plurality of communication devices, the communication network being configured such that transport of packets through the network is provided by the communication devices in the network listening for and relaying packets, the analysis device being configured to: receive a traffic statistics log from a profile device, the traffic statistics log comprising a traffic statistics message from each of the plurality of communication devices, each traffic statistics message comprising data defining at least one reception property of the reception of at least one probe message at the respective communication device; and identify, based on the at least one reception property, at least one restriction point communication device from the plurality of communication devices that is a restriction point in the network.
 2. The analysis device according to claim 1, the analysis device being configured to: calculate a network reception property for each different reception property received from the plurality of communication devices; and identify at least one restriction point communication device that is a restriction point by selecting the at least one communication device from the plurality of communication devices that have at least one reception property that deviates from the at least one network reception property by a predetermined threshold value.
 3. The analysis device according to claim 2, the analysis device being configured to: calculate each network reception property by taking the average of the respective reception property received from each communication device; and identify at least one restriction point communication device that is a restriction point by selecting the communication devices that deviate from that average by a predetermined threshold value.
 4. The analysis device according to claim 1, the analysis device being configured to: send a configuration message to each of the at least one restriction point communication device, the configuration message comprising data instructing the restriction point communication device to increase that communication device's duty cycle.
 5. The analysis device according to claim 4, wherein the restriction point communication device listens for messages only a proportion of the time and the instruction to increase that device's duty cycle comprises an instruction to listen for a larger proportion of the time.
 6. The analysis device according to claim 1, the analysis device being configured to: generate a recommendation message comprising data containing a recommendation to install another communication device near each restriction point communication device; and send the recommendation message to a presentation device for display to a user of the mesh network.
 7. The analysis device according to claim 1, wherein the at least one reception property comprises at least one of: a number of unique messages received at the respective communication device, a number of repeated messages received at the respective communication device, a number of unknown network messages received at the respective communication device, and the average received signal strength of the messages received at the respective communication device.
 8. The analysis device according to claim 1, wherein the traffic statistics log comprises a reliability property for the communication network which is based on a number of probe messages that the profile device receives a response to; and the analysis device is configured to identify at least one restriction point communication device based on the reliability property.
 9. The analysis device according to claim 1, wherein the traffic statistics log comprises a delay property for the communication network which is based on the difference between receive times at which the probe messages are received by the respective communication devices and send times at which the probe messages are sent by the profile device; and the analysis device is configured to identify at least one restriction point based on the delay property.
 10. The analysis device according to claim 1, wherein the traffic statistics log comprises values of the lifetime field of the probe messages as received by an addressed communication device; and the analysis device is configured to identify at least one restriction point based on the averaged value of the lifetime fields.
 11. A communication device capable of communicating over a communication network comprising a plurality of communication devices, the communication network being configured such that transport of packets through the network is provided by the communication devices in the network listening for and relaying packets, the communication device being configured to: send a plurality of probe messages for transmission through the communication network; send a traffic statistic request message to each of the plurality of communication devices; and receive a traffic statistics message from each of the plurality of communication devices, each traffic statistics message comprising data defining at least one reception property of the reception of at least one of the probe messages at the respective communication device.
 12. The communication device according to claim 11, the communication device being configured to: form a traffic statistics log message the traffic statistics log comprising the traffic statistics messages from each of the plurality of communication devices; and send the traffic statistics log message to an analysis device.
 13. The communication device according to claim 11, the communication device being configured to: form the plurality of probe messages so that each probe message comprises data containing a unique identifier that identifies that particular probe message separate from the others of the plurality of probe messages.
 14. The communication device according to claim 13, the communication device being configured to: form the plurality of probe messages so that the unique identifier is an incremental count which increases sequentially in turn for each sent probe message.
 15. The communication device according to claim 11, the communication device being configured to: form the plurality of probe messages so that each probe message comprises data containing an address field specifying the address of at least one communication device that the probe message is addressed to, and the address field contains an address of at least one of the plurality of communication devices; receive a probe message response for at least one of the plurality of probe messages from the at least one addressed communication device, each probe message response comprising data containing the unique identifier of the probe message that the probe message response is a response to; and calculate a reliability property for the communication network based on a number of distinct unique identifiers that are present in the probe message responses.
 16. The communication device according to claim 11, the communication device being configured to: form the plurality of probe messages so that each probe message comprises data containing a sent time at which that particular probe message is sent by the communication device.
 17. The communication device according to claim 11, the communication device being configured to: form the plurality of probe messages so that each probe message comprises data containing an address field specifying the address of at least one communication device that the probe message is addressed to, and the address field contains an address of at least one of the plurality of communication devices; receive a probe message response for at least one of the plurality of probe messages from the at least one addressed communication device, each probe message response comprising data containing a receive time at which that particular probe message is received by the communication device; and calculate a delay property for the communication network based on the difference between the receive time and the sent time of the probe messages.
 18. The communication device according to claim 15, the communication device being configured to: form the plurality of probe messages so that each probe message comprises data containing a lifetime field specifying the retransmission lifetime of the message; and each probe message response comprises data containing the value of the lifetime field of that particular probe message as received by the addressed communication device.
 19. The communication device according to claim 11, the communication device being configured to: form the plurality of probe messages so that each probe message comprises data containing an address field specifying the address of the communication device that the probe message is addressed to, and the address field contains a communication device address that is not present in the communication network.
 20. A method for identifying restriction point devices within a communication network comprising a plurality of communication devices, the communication network being configured such that transport of packets through the network is provided by the communication devices in the network listening for and relaying packets, the method comprising: sending a plurality of probe messages for transmission through the communication network; sending a traffic statistic request message to each of the plurality of communication devices; receiving a traffic statistics message from each of the plurality of communication devices, each traffic statistics message comprising data defining at least one reception property of the reception of at least one of the probe messages at the respective communication device; and identifying, based on the at least one reception property, at least one restriction point communication device from the plurality of communication devices that is a restriction point in the network. 